The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to xe2x80x9ctree navigatorxe2x80x9d graphical user interfaces for representing and manipulating hierarchical data in computer applications and systems.
Over the last two decades, significant increases in personal computer processing capability and equally significant decreases in the cost of such computers has led to the proliferation of personal computers in many aspects of society. Thus, today personal computers are heavily utilized in schools, homes and in business. One factor fueling this proliferation of computers throughout numerous aspects of life has been the introduction and expanded use of graphical user interfaces, which have greatly simplified and made.more intuitive both computer operating systems and applications. This simplification has allowed less sophisticated computer users to readily use computers for many applications.
Today, the vast majority of personal computer operating systems and application programs are accessed by users via a graphical user interface. Examples of such operating systems are IBM(copyright) OS/2(copyright), Apple(copyright) System 7(copyright), and Microsoft(copyright) Windows(copyright), and example applications include Microsoft Windows Explorer(copyright), Lotus Notes(copyright) and Word Perfect(copyright).
A wide variety of operating systems and computer application programs incorporate, display and/or perform operations on data or information which is hierarchical in nature. For example, numerous computer operating systems and application programs provide users access to a hierarchy of directories and sub-directories where documents, programs, e-mail messages and other information are stored. Similarly, organizer applications allow a user to establish task listings, which once again are often hierarchical in nature.
With the advent and expanded use of graphical user interfaces, such hierarchical information or data is often displayed to the user in a xe2x80x9ctree representation.xe2x80x9d These tree representations visually indicate the level in the hierarchy where each item of data resides, and may allow a user to xe2x80x9cexpandxe2x80x9d or xe2x80x9ccollapsexe2x80x9d the tree at various points (i.e., displaying or hiding information in the lower levels) to facilitate a user""s viewing of the hierarchical data. (Note that herein the xe2x80x9clowestxe2x80x9d level of a tree representation is defined as the level which is furthest from the root of the tree.)
A wide variety of computer programs are known in the art for providing a xe2x80x9ctree navigatorxe2x80x9d graphical user interface to the user. By a xe2x80x9ctree navigatorxe2x80x9d graphical user interface it is meant a graphical user interface that displays (and possibly allows for manipulation of) hierarchical data in a tree representation. By way of example, FIG. 1 is a screen capture of a prior art application having a tree navigator graphical user interface (Microsoft Corporation""s Windows Explorer). In the tree navigator graphical user interface of FIG. 1, the left hand portion of the figure includes a tree view display window (a window that displays hierarchical data in a tree representation). This tree navigator graphical user interface also contains a second display area adjacent the tree view display that contains data associated with the hierarchical data displayed in the tree view display.
As the use of such tree navigator graphical user interfaces has expanded, so has the complexity of many of the hierarchical data sets that are provided to the user in tree representation. For example, hierarchical data sets having thousands upon thousands of branches are now common, and this data is often stored on multiple, geographically dispersed network server devices. In many instances, to view and/or manipulate this data may require many successive queries to the device(s) on which the data is stored to retrieve new portions of the data. If the data is stored on a xe2x80x9cback-endxe2x80x9d data store (a data storage device at a remote location from the user), the response of a tree navigator graphical user interface may become subject to significant delays if large amounts of data must be loaded and/or because of limitations in network communications resources. Such delays are almost inevitably frustrating to users, and can also result in confusion as the user may not know whether the computer is in the process of responding to a query or has instead xe2x80x9clocked-upxe2x80x9d or otherwise failed to respond.
Despite these needs, prior tree navigator graphical user interfaces typically have not contained features which address the problems which may arise when the size or the distributed nature of the hierarchical data set negatively impacts the responsiveness of the graphical user interface. Accordingly, there is a need for improvements in tree navigator graphical user interfaces.
In view of the above limitations associated with existing tree navigator graphical user interfaces, it is an object of the present invention to provide graphical user interfaces having improved responsiveness.
It is another object of the present invention to provide tree navigator graphical user interfaces which unobtrusively provide the user more information regarding the status of queries for data.
Other objects, features and advantages of the present invention will become apparent upon reading the following detailed description and appended claims and upon reference to the accompanying drawings.
The above-mentioned objects of the present invention may be provided by tree navigator graphical user interfaces which execute on user queries for data asynchronously. In this manner, the user of the interface may continue to view and manipulate the data displayed by the graphical user interface while awaiting the response to a prior request to load data into the interface. Additionally, the tree navigator graphical user interfaces of the present invention may display information obtained as a result of a query as soon as it is available, even though additional responsive information is not yet available. This feature allows the user to start operations on a desired portion of the requested data as soon as it is available, without awaiting the complete response to the query for data. Pursuant to another aspect of the present invention, the graphical user interface may be programmed to anticipate future queries for data based on past or current queries, and pre-load data into the graphical user interface which is responsive to the anticipated future queries. For instance, after responding to a request to load data associated with a particular branch in the tree, the interface program may load some or all of the data associated with the branches of the tree that depend on the branch in question, in anticipation that the user will request such data associated with one or more of the xe2x80x9cchildxe2x80x9d branches in the near future. Moreover, the tree navigator graphical user interfaces of the present invention may use xe2x80x9cplaceholder objectsxe2x80x9d and xe2x80x9cloading iconsxe2x80x9d to notify the user regarding the loading status of the data associated with a particular branch of the tree. This status information may help to avoid user confusion and may also improve the user""s perception as to the responsiveness of the tree navigator graphical user interface.
In one embodiment of the present invention, methods of loading data that is part of a set of hierarchical data into a tree navigator graphical user interface are provided. Pursuant to these methods, a request to load data is received and asynchronously executed upon so as to obtain all available data responsive to the request. Furthermore, a user-generated command may be received subsequent to initiating execution on the request to load data, and execution on this user-generated command may be initiated before the asynchronous execution on the request to load data is completed. Ultimately, the data obtained in response to the request to load data is loaded into the tree navigator graphical user interface, and the method may further include the step of displaying at least a portion of the obtained data in a tree view display which is part of the tree navigator graphical user interface.
In a particular aspect of the present invention, the request to load data may comprise a request to load data associated with a first object that is displayed in the tree view display in tree representation. In this case, the method may further include the step of loading additional data into the tree navigator graphical user interface that is associated with at least one other object displayed in the tree view display (such as the child objects of the first object) in anticipation of a future request to load data. The method may alternatively, or also, further include the step of displaying the first object as a placeholder object during the step of asynchronously executing on the request to load data. If such a placeholder object is used, the method may also include the step of replacing said placeholder object with a normal object once the data associated with the first object has been fully loaded into the tree navigator graphical user interface. In addition to the above-described methods, related systems and computer program products are also provided.
As will be appreciated by those of skill in the art in light of the present disclosure, the methods, systems and computer program products for loading data into a tree navigator graphical user interface asynchronously may provide a number of advantages. First, these methods, systems and computer program products allow a user to view and operate on already loaded portions of the data set while awaiting additional data to load, instead of waiting for the graphical user interface to once again become responsive. Second, the methods, systems and computer program products of the present invention may reduce the frustration that users often experience when their machine xe2x80x9clocks-upxe2x80x9d pending the completion of a relatively slow operation. Third, if a particular network connection is slow or inoperable, the methods, systems and computer program products of the present invention allow a user to continue working while obtaining data over such a slow or inoperable connection.